<!-------- @HEADER
 !
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
 !  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
 !                  Copyright 2012 Sandia Corporation
 !
 ! Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
 ! the U.S. Government retains certain rights in this software.
 !
 ! Redistribution and use in source and binary forms, with or without
 ! modification, are permitted provided that the following conditions are
 ! met:
 !
 ! 1. Redistributions of source code must retain the above copyright
 ! notice, this list of conditions and the following disclaimer.
 !
 ! 2. Redistributions in binary form must reproduce the above copyright
 ! notice, this list of conditions and the following disclaimer in the
 ! documentation and/or other materials provided with the distribution.
 !
 ! 3. Neither the name of the Corporation nor the names of the
 ! contributors may be used to endorse or promote products derived from
 ! this software without specific prior written permission.
 !
 ! THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
 ! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 ! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
 ! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 ! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 ! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 ! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 ! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 ! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 ! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 !
 ! Questions? Contact Karen Devine	kddevin@sandia.gov
 !                    Erik Boman	egboman@sandia.gov
 !
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !
 ! @HEADER
-------> 
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
  <meta name="sandia.approval_type" content="formal">
  <meta name="sandia.approved" content="SAND2007-4748W">
  <meta name="author" content="Zoltan PI">

   <title> Zoltan User's Guide:  Data Services</title>

</head>
<body bgcolor="#FFFFFF">

<div align=right><b><i><a href="ug.html">Zoltan User's Guide</a>&nbsp; |&nbsp; <a href="ug_util_mem.html">Next</a>&nbsp; |&nbsp; <a href="ug_color_parallel.html">Previous</a></i></b></div>

<!--------------------------------------------------------------------------->
<h2>
<a NAME="Utilities"></a>Data Services and Utilities</h2>
Within Zoltan, several utilities are provided to simplify both application development and development of new algorithms
in the library.&nbsp; 
They are separate from the Zoltan library so
that applications can use them independently of Zoltan, if desired.&nbsp; They are compiled separately 
from Zoltan and can be archived in separate libraries.&nbsp; Instructions for
<a href="#Building Utilities">building the utilities</a>
and <a href="#Building Applications">applications</a> using them
are included below; individual library names are listed in the following documentation for each 
package.&nbsp; 
<p>
The packages available are listed below.
<blockquote><a href="ug_util_mem.html">Memory Management Utilities</a>
<br><a href="ug_util_comm.html">Unstructured Communication Utilities</a>
<br><a href="ug_util_dd.html">Distributed Directory Utility</a>
</blockquote>

<!--------------------------------------------------------------------------->
<h2>
<a NAME="Building Utilities"></a><hr>Building Utilities</h2>
The utilities provided with Zoltan have their own makefiles and can
be built separately from Zoltan.&nbsp; If the user 
<a href="../ug_html/ug_usage.html#Building the Library">builds the Zoltan library</a>, 
the utility libraries are
built automatically and copied to the appropriate <i>Zoltan/Obj_&lt;platform&gt;</i>
directory, where &lt;<i>platform</i>&gt; is specified through the 
<a href="../ug_html/ug_usage.html#Building the Library">ZOLTAN_ARCH environment variable</a>.&nbsp; 
Zoltan and the utilities share the 
<a href="../ug_html/ug_usage.html#Building the Library"><i>Utilities/Config/Config.&lt;platform&gt;</i></a>
files specifying compilation paths for
various architectures.&nbsp;
If, however, a user wishes to use these
utilities without using Zoltan, he must build the libraries 
separately.&nbsp;
<p>

The structure and use of makefiles for the utilities are similar
to <a href="ug_usage.html#Building the Library">Zoltan's makefiles</a>; 
a top-level makefile includes rules for building each utility's 
library.&nbsp; Object files and the utility libraries are stored in
a subdirectory <i>Obj_&lt;platform&gt;</i>, where &lt;<i>platform</i>&gt; is 
a target architecture  supported with a 
<i><a href="../ug_html/ug_usage.html#Building the Library">Utilities/Config/Config.&lt;platform&gt;</i></a>
file.&nbsp; The command for compiling a particular utility follows:
<blockquote>
gmake ZOLTAN_ARCH=&lt;<i>platform</i>&gt; &lt;<i>library_name</i>&gt;
</blockquote>
where &lt;<i>library_name</i>&gt; is the name of the utility library, and
&lt;<i>platform</i>&gt; is the target architecture (corresponding to 
<i>Utilities/Config/Config.&lt;platform&gt;</i>).&nbsp;
The &lt;<i>library_name</i>&gt; for each utility is included in the following documentation
for the utilities.&nbsp;
<p>

<!--------------------------------------------------------------------------->
<h2>
<a NAME="Building Applications"></a><hr>Building Applications</h2>
The utilities are designed so that they can easily be used separately 
from Zoltan in applications.&nbsp;  
To enable type-checking of arguments, the 
function-prototypes file for a utility should be included
in all application source code files that directly access the utility.&nbsp; 
The application must also link with the
appropriate utility library (and any other libraries on which
the utility depends).&nbsp; Library and function-prototype file names
for each utility are listed in the following documentation for the
utilities.&nbsp;
<p>

<!--------------------------------------------------------------------------->
<hr WIDTH="100%">
<br>[<a href="ug.html">Table of Contents</a>&nbsp; |&nbsp; <a href="ug_util_mem.html">Next:&nbsp;
Memory Management Utilities</a>&nbsp; |&nbsp; <a href="ug_color_parallel.html">Previous:&nbsp;
Parallel Coloring</a>&nbsp; |&nbsp; <a href="https://www.sandia.gov/general/privacy-security/index.html">Privacy and Security</a>]
</body>
</html>
